package com.hjq.fcloud.presenter

import android.text.TextUtils
import com.alibaba.fastjson.JSON
import com.google.gson.internal.LinkedTreeMap
import com.hjq.fcloud.http.api.GetListJsonApi
import com.hjq.http.EasyHttp
import com.hjq.http.listener.HttpCallback
import com.hjq.toast.ToastUtils
import java.util.HashMap

/**
 * 公共列表业务处理类
 */
class CommonListPresenter {


    /**
     * 获取查询条件
     * 遍历templeJson，得到dataIndex作为key，先在mQueryOrderMapValue，然后在mQueryOrderMap集合中依次查找得到的内容，判断不为空则拼接为完整字符串
     */
    fun getQueryCondition(
        templeJson: List<GetListJsonApi.DataDTO.JsonDTO>?,
        mQueryOrderMap: HashMap<String, String>,
        mQueryOrderMapValue: HashMap<String, String>
    ): String {
        var conditionList = mutableListOf<String>()
        templeJson!!.forEach {
            var key = it.dataIndex
            if (!isHideCondition(it)) {
                var condition = mQueryOrderMapValue.get(key)
                if (condition == null) {
                    condition = mQueryOrderMap.get(key)
                }
                if (condition?.trim()?.isNotEmpty() == true) {
                    conditionList.add(condition)
                }
            }
        }
        if (conditionList.size > 0) {
            return conditionList.joinToString(",")
        } else {
            return ""
        }
    }

    /**
     * 不能重置搜索条件
     */
    fun notResetCondition(templeJson: List<GetListJsonApi.DataDTO.JsonDTO>?, key: String): Boolean {
        templeJson?.forEach {
            if (key == it.dataIndex) {
                return isHideCondition(it)
            }
        }
        return false
    }

    /**
     * 是否是隐藏的条件(①不作为展示，②并且再搜索界面不能重置这个条件)
     */
    fun isHideCondition(it: GetListJsonApi.DataDTO.JsonDTO): Boolean {
        return it.hideInSearch == 1
    }
}